==单片机串口调试功能： USMART==
===USMART 是正点原子提供的开源的单片机串口调试交互组件，通过它可以通过串口助手调用程序里面的任何函数，传递任何参数，并执行（类似于LINUX的shell），单个函数最多支持10个输入参数，并支持函数返回值显示。 所以有了USMART 串口调试工具，我们在调试测速函数性能时就可以直接通过串口调用函数传递参数即可，不用每次都重新编译烧写固件查看运行效果。USMART 有以下的特点：===
*1、可以调用绝大部分用户直接编写的函数。
*2、资源占用极少（最少情况：FLASH:4K；SRAM:72B），调试过程中使用，发布的时候可将其移除。
*3、支持参数类型多（数字（包含10/16进制）、字符串、函数指针等）。
*4、支持函数返回值显示。
*5、支持参数及返回值格式设置。
*6、支持函数执行时间计算。

===USMART的实现流程简单概括就是：第一步，添加需要调用的函数（在usmart_config.c里面的usmart_nametab数组里面添加）；第二步，初始化串口；第三步，初始化USMART（通过usmart_init函数实现）；第四步，轮询usmart_scan函数，处理串口数据。经过以上简单介绍，我们对USMART有了个大概了解，接下来我们来简单介绍下USMART组件的移植。===

*1、USMART组件总共包含6文件如下图所示：
 [[File:1.png]]
*2、将其中的C文件加入到工程中，如下图
 [[File:2.png]]
*3、加入头文件，初始化串口并初始化USMART组件，如下图。
 [[File:3.png]]
*4、在usmart中添加可被串口调用的函数。
 [[File:4.png]]
*5、打开出口调试助手，即可进行串口调试，发送”set_speed(0)”后，小车停止了运动。
 [[File:5.png]]